clean up imports needed by old versions of ghc
authorJoey Hess <joeyh@joeyh.name>
Tue, 23 Sep 2025 17:55:13 +0000 (13:55 -0400)
committerJoey Hess <joeyh@joeyh.name>
Tue, 23 Sep 2025 17:55:13 +0000 (13:55 -0400)
Now that ghc 9.0.2 is the oldest supported version.

Eg cruft from
https://web.archive.org/web/20190424185034/https://prime.haskell.org/wiki/Libraries/Proposals/SemigroupMonoid

Sponsored-by: Jack Hill
61 files changed:
Annex/Balanced.hs
Annex/Import.hs
Annex/MetaData/StandardFields.hs
Assistant/Gpg.hs
Assistant/Types/BranchChange.hs
Build/Configure.hs
Build/DesktopFile.hs
Build/LinuxMkLibs.hs
Build/Mans.hs
Build/OSXMkLibs.hs
Build/Version.hs
Command/Info.hs
Database/Keys/Handle.hs
Database/Keys/Tables.hs
Database/Queue.hs
Git/Fsck.hs
Git/Quote.hs
Git/Types.hs
Logs/MapLog.hs
Messages/JSON.hs
P2P/Http/State.hs
P2P/Protocol.hs
Types/DeferredParse.hs
Types/DesktopNotify.hs
Types/Difference.hs
Types/Distribution.hs
Types/GitRemoteAnnex.hs
Types/Key.hs
Types/Transfer.hs
Types/UUID.hs
Types/VectorClock.hs
Utility/Aeson.hs
Utility/Debug.hs
Utility/Directory.hs
Utility/Directory/Create.hs
Utility/Directory/Stream.hs
Utility/Env.hs
Utility/Env/Basic.hs
Utility/HumanTime.hs
Utility/IPAddress.hs
Utility/LinuxMkLibs.hs
Utility/LockFile/PidLock.hs
Utility/LockPool/LockHandle.hs
Utility/LockPool/PidLock.hs
Utility/LockPool/Posix.hs
Utility/MagicWormhole.hs
Utility/Misc.hs
Utility/MoveFile.hs
Utility/Network.hs
Utility/OptParse.hs
Utility/Path.hs
Utility/Path/AbsRel.hs
Utility/Path/Max.hs
Utility/Path/Tests.hs
Utility/Process/Transcript.hs
Utility/QuickCheck.hs
Utility/SafeCommand.hs
Utility/Scheduled.hs
Utility/Scheduled/QuickCheck.hs
Utility/ShellEscape.hs
Utility/UserInfo.hs

index e114c1f893d1d4cfc8fabba2517928c6d84d87cc..c6b14287289615e32c11761e6774b5ac6fec8808 100644 (file)
@@ -12,11 +12,10 @@ import Types.UUID
 import Utility.Hash
 
 import Data.Maybe
+import Data.List
 import Data.Bits (shiftL)
 import qualified Data.Set as S
 import qualified Data.ByteArray as BA
-import Data.List
-import Prelude
 
 -- The Int is how many UUIDs to pick.
 type BalancedPicker = S.Set UUID -> Key -> Int -> [UUID]
index 9ba4caf1b133fbe5deed54d44969a313e64ea3b2..e510ea39de68c704c4c40c3f8165d60fb5587550 100644 (file)
@@ -75,8 +75,6 @@ import qualified Data.ByteArray.Encoding as BA
 #ifdef mingw32_HOST_OS
 import qualified System.FilePath.Posix as Posix
 #endif
-import qualified Data.Semigroup as Sem
-import Prelude
 
 {- Configures how to build an import tree. -}
 data ImportTreeConfig
@@ -517,7 +515,7 @@ data ImportResult t
 -- import.
 newtype PostExportLogUpdate = PostExportLogUpdate (Annex ())
 
-instance Sem.Semigroup PostExportLogUpdate where
+instance Semigroup PostExportLogUpdate where
        PostExportLogUpdate a <> PostExportLogUpdate b =
                PostExportLogUpdate (a >> b)
 
index 061133b41c961cd5336ad522ecac8dd45f708746..cb57ceb81719fa1778ee6d26fdee2ed946eba20d 100644 (file)
@@ -22,8 +22,6 @@ module Annex.MetaData.StandardFields (
 import Types.MetaData
 
 import qualified Data.Text as T
-import Data.Monoid
-import Prelude
 
 tagMetaField :: MetaField
 tagMetaField = mkMetaFieldUnchecked "tag"
index e6391d179d3c86f9ae407fbe91d00f07cdfc11c4..8bf96feecf639f2f7503084b51904d61a824363b 100644 (file)
@@ -16,8 +16,6 @@ import Types.ProposedAccepted
 
 import Data.Maybe
 import qualified Data.Map as M
-import Control.Applicative
-import Prelude
 
 {- Generates a gpg user id that is not used by any existing secret key -}
 newUserId :: GpgCmd -> IO UserId
index 1f4128b7549fd140563692bfae494db88281009b..8e2f6db165d5d93f9c84ad9eff5672ac93584207 100644 (file)
@@ -8,8 +8,6 @@
 module Assistant.Types.BranchChange where
 
 import Control.Concurrent.MSampleVar
-import Control.Applicative
-import Prelude
 
 newtype BranchChangeHandle = BranchChangeHandle (MSampleVar ())
 
index 4b1a0594f929b99f621e78ac43de728306b6bcc1..25b9bec43bf16e5aed817925851041f261428678 100644 (file)
@@ -15,8 +15,6 @@ import Utility.OsPath
 import qualified Utility.FileIO as F
 
 import Control.Monad
-import Control.Applicative
-import Prelude
 
 tests :: [TestCase]
 tests =
index ad066a89377e52d13d9a11ad1fbda79a1d085c6f..099bd302253b1f0f190317468ecfa6ff1fbd9066 100644 (file)
@@ -22,7 +22,6 @@ import Assistant.Install.Menu
 import System.Environment
 #ifndef mingw32_HOST_OS 
 import System.Posix.User
-import Prelude
 #endif
 
 systemwideInstall :: IO Bool
index 065ac3b1ea51a0c56d96631bf03026b3649395c0..e0eeedecc4db95e4cca5fab62d3fdbb6560d0371 100644 (file)
@@ -9,14 +9,12 @@
 
 module Build.LinuxMkLibs (mklibs) where
 
-import Data.Maybe
 import Control.Monad
-import Data.List
 import System.Posix.Files
 import Control.Monad.IfElse
-import Control.Applicative
 import qualified System.Info
-import Prelude
+import Data.List
+import Data.Maybe
 
 import Utility.LinuxMkLibs
 import Utility.OsPath
index e4693a0fabce8803e0a4af62aa4ca864b48ddf2f..e7a6ce32c977746ee077e2030093acf87d188e0a 100644 (file)
@@ -17,8 +17,6 @@ import Control.Monad
 import System.Exit
 import Data.Maybe
 import Utility.Exception
-import Control.Applicative
-import Prelude
 
 buildMansOrWarn :: IO ()
 buildMansOrWarn = do
index 6ca0d7d05e388fb1a223b730ce74ce8dbbcd71ac..f05c1f086a15332f0850e137ecd260e8834256e0 100644 (file)
@@ -16,7 +16,6 @@ import Control.Monad.IfElse
 import Data.List
 import Control.Applicative
 import System.Posix.Files
-import Prelude
 
 import Utility.PartialPrelude
 import Utility.OsPath
index 216f3133bb0d589478f0a3bc73bd1e8f3bc2ef0c..687f0732cb5e3744ff44207a190c5179ebd1d474 100644 (file)
@@ -8,8 +8,6 @@ module Build.Version where
 import Data.List
 import System.Environment
 import Data.Char
-import Control.Applicative
-import Prelude
 
 import Utility.Monad
 import Utility.Exception
index d2f690027a2e74328b3bff51312322c7dac1eb64..689fb2b13036f4b13092ee536676be8184a91b78 100644 (file)
@@ -17,8 +17,6 @@ import qualified Data.Vector as V
 import Data.ByteString.Short (fromShort)
 import System.PosixCompat.Files (isDirectory)
 import Data.Ord
-import qualified Data.Semigroup as Sem
-import Prelude
 
 import Command
 import qualified Git
@@ -68,7 +66,7 @@ data KeyInfo = KeyInfo
        , backendsKeys :: M.Map KeyVariety Integer
        }
        
-instance Sem.Semigroup KeyInfo where
+instance Semigroup KeyInfo where
        a <> b = KeyInfo
                { countKeys = countKeys a + countKeys b
                , sizeKeys = sizeKeys a + sizeKeys b
index 70e28ab44144941b61050fe3900085d35d9525d6..c784970c9c421049eaa02572c70afea1003c0315 100644 (file)
@@ -22,8 +22,6 @@ import Utility.DebugLocks
 
 import Control.Concurrent
 import Control.Monad.IO.Class (liftIO, MonadIO)
-import Control.Applicative
-import Prelude
 
 -- The MVar is always left full except when actions are run
 -- that access the database.
index ab6a4fb757a777a512d6121f5660d76eb3d40ea9..d639e6621193be22fe3bafa4d7371499f5b80127 100644 (file)
@@ -7,10 +7,6 @@
 
 module Database.Keys.Tables where
 
-import Data.Monoid
-import qualified Data.Semigroup as Sem
-import Prelude
-
 data DbTable = AssociatedTable | ContentTable
        deriving (Eq, Show)
 
@@ -20,7 +16,7 @@ data DbTablesChanged = DbTablesChanged
        }
        deriving (Show)
 
-instance Sem.Semigroup DbTablesChanged where
+instance Semigroup DbTablesChanged where
        a <> b = DbTablesChanged
                { associatedTable = associatedTable a || associatedTable b
                , contentTable = contentTable a || contentTable b
index 0f3f5233bac5544f2d317b30039836bd6fc2050a..98fe9c48a48fe941d8e7db5b94a93c9f82f617ca 100644 (file)
@@ -27,8 +27,6 @@ import Database.Handle
 import Database.Persist.Sqlite
 import Control.Concurrent
 import Data.Time.Clock
-import Control.Applicative
-import Prelude
 
 {- A DbQueue wraps a DbHandle, adding a queue of writes to perform.
  -
index 18f7350c020c7303c6c528801d790b6991c66eca..1cbf28dae6717d51b1b55897107af59475c73653 100644 (file)
@@ -26,8 +26,6 @@ import Utility.Batch
 
 import qualified Data.Set as S
 import Control.Concurrent.Async
-import qualified Data.Semigroup as Sem
-import Prelude
 
 data FsckResults 
        = FsckFoundMissing
@@ -56,7 +54,7 @@ appendFsckOutput AllDuplicateEntriesWarning AllDuplicateEntriesWarning = AllDupl
 appendFsckOutput AllDuplicateEntriesWarning NoFsckOutput = AllDuplicateEntriesWarning
 appendFsckOutput NoFsckOutput AllDuplicateEntriesWarning = AllDuplicateEntriesWarning
 
-instance Sem.Semigroup FsckOutput where
+instance Semigroup FsckOutput where
        (<>) = appendFsckOutput
 
 instance Monoid FsckOutput where
index 24b616de4e8276a8338c8ee15ce0b3e31558f7bb..51dc37ffd01fe7f9770a48f46b92a39640c1840e 100644 (file)
@@ -28,8 +28,6 @@ import Data.Char
 import Data.Word
 import Data.String
 import qualified Data.ByteString as S
-import qualified Data.Semigroup as Sem
-import Prelude
 
 unquote :: S.ByteString -> RawFilePath
 unquote b = case S.uncons b of
@@ -108,7 +106,7 @@ instance Quoteable StringContainingQuotedPath where
 instance IsString StringContainingQuotedPath where
        fromString = UnquotedByteString . encodeBS
 
-instance Sem.Semigroup StringContainingQuotedPath where
+instance Semigroup StringContainingQuotedPath where
        UnquotedString a <> UnquotedString b = UnquotedString (a <> b)
        UnquotedByteString a <> UnquotedByteString b = UnquotedByteString (a <> b)
        a <> b = a :+: b
index fd63d987bf31316d47263855e0d2f2fe3ba2f08c..388db43b3bcbbf5618145fae0a59308038c9d1e9 100644 (file)
@@ -21,8 +21,6 @@ import qualified Data.Map as M
 import qualified Data.ByteString as S
 import qualified Data.List.NonEmpty as NE
 import System.Posix.Types
-import qualified Data.Semigroup as Sem
-import Prelude
 
 {- Support repositories on local disk, and repositories accessed via an URL.
  -
@@ -81,7 +79,7 @@ data ConfigValue
        -- with an empty value
        deriving (Ord, Eq)
 
-instance Sem.Semigroup ConfigValue where
+instance Semigroup ConfigValue where
        ConfigValue a <> ConfigValue b = ConfigValue (a <> b)
        a <> NoConfigValue = a
        NoConfigValue <> b = b
index 4ef338b7405e4c9b590573d212383d237ebaf6bd..ca7d1e4b82055ce5b1a546eb7ac6981703c853d4 100644 (file)
@@ -28,8 +28,6 @@ import qualified Data.Attoparsec.ByteString as A
 import qualified Data.Attoparsec.ByteString.Lazy as AL
 import qualified Data.Attoparsec.ByteString.Char8 as A8
 import Data.ByteString.Builder
-import qualified Data.Semigroup as Sem
-import Prelude
 
 data LogEntry v = LogEntry
        { changed :: VectorClock
@@ -42,7 +40,7 @@ instance Arbitrary v => Arbitrary (LogEntry v) where
 newtype MapLog f v = MapLog (M.Map f (LogEntry v))
        deriving (Show, Eq)
 
-instance Ord f => Sem.Semigroup (MapLog f v)
+instance Ord f => Semigroup (MapLog f v)
   where
        a <> MapLog b = foldl' (\m (f, v) -> addMapLog f v m) a (M.toList b)
 
index 540ba1e9ecf9974b7fd137267b259dd1ef648aeb..4b7284173ede410240c11aa0cfe6bef32f0c82f0 100644 (file)
@@ -31,7 +31,6 @@ module Messages.JSON (
        module Utility.Aeson,
 ) where
 
-import Control.Applicative
 import qualified Data.Map as M
 import qualified Data.Vector as V
 import qualified Data.ByteString as S
@@ -41,8 +40,6 @@ import System.IO
 import System.IO.Unsafe (unsafePerformIO)
 import Control.Concurrent
 import Data.Maybe
-import Data.Monoid
-import Prelude
 
 import Types.Command (SeekInput(..))
 import Types.ActionItem
index 0a77ea977225a4d6db228defa8453947dfeedd2a..44a2588b5711c3e0b36567e62c7bac65f42f1fa0 100644 (file)
@@ -44,8 +44,6 @@ import qualified Data.Map.Strict as M
 import qualified Data.Set as S
 import Control.Concurrent.Async
 import Data.Time.Clock.POSIX
-import qualified Data.Semigroup as Sem
-import Prelude
 
 data P2PHttpServerState = P2PHttpServerState
        { servedRepos :: M.Map UUID PerRepoServerState
@@ -62,7 +60,7 @@ instance Monoid P2PHttpServerState where
                , updateRepos = const mempty
                }
 
-instance Sem.Semigroup P2PHttpServerState where
+instance Semigroup P2PHttpServerState where
        a <> b = P2PHttpServerState
                { servedRepos = servedRepos a <> servedRepos b
                , serverShutdownCleanup = do
index 8eb602d00bd7271f5fba61b3f656a89e9365e6a9..21d40c2481f6aa1beed8c0e2a2df4343804b7581 100644 (file)
@@ -44,9 +44,7 @@ import qualified Data.Set as S
 import Data.Char
 import Data.Maybe
 import Data.Time.Clock.POSIX
-import Control.Applicative
 import Control.DeepSeq
-import Prelude
 
 newtype Offset = Offset Integer
        deriving (Show, Eq, NFData, Num, Real, Ord, Enum, Integral)
index 9566caefd54fe1d02a6e81b244715f0d88c59a3b..11f3e81a7174aeba4774ac6332a13b19c39c2a04 100644 (file)
@@ -12,8 +12,6 @@ module Types.DeferredParse where
 import Annex
 
 import Options.Applicative
-import qualified Data.Semigroup as Sem
-import Prelude
 
 -- Some values cannot be fully parsed without performing an action.
 -- The action may be expensive, so it's best to call finishParse on such a
@@ -47,7 +45,7 @@ data AnnexSetter = AnnexSetter
        , annexReadSetter :: AnnexRead -> AnnexRead
        }
 
-instance Sem.Semigroup AnnexSetter where
+instance Semigroup AnnexSetter where
        a <> b = AnnexSetter
                { annexStateSetter = annexStateSetter a >> annexStateSetter b
                , annexReadSetter = annexReadSetter b . annexReadSetter a
index bf836acdac0ad750cf102c438abb8f99b78511b0..af15b2fd15365e754016869d1f4b2f4fcfa228c4 100644 (file)
@@ -7,17 +7,13 @@
 
 module Types.DesktopNotify where
 
-import Data.Monoid
-import qualified Data.Semigroup as Sem
-import Prelude
-
 data DesktopNotify = DesktopNotify
        { notifyStart :: Bool
        , notifyFinish :: Bool
        }
        deriving (Show)
 
-instance Sem.Semigroup DesktopNotify where
+instance Semigroup DesktopNotify where
        (DesktopNotify s1 f1) <> (DesktopNotify s2 f2) =
                DesktopNotify (s1 || s2) (f1 || f2)
 
index 167963a3cda49be7a72bc0067d3b8ece39d5fb11..620f4c54b73b4837ec52adf96ea81114aa009b31 100644 (file)
@@ -26,11 +26,8 @@ import qualified Git.Config
 import Git.Types
 
 import Data.Maybe
-import Data.Monoid
 import qualified Data.ByteString as B
 import qualified Data.Set as S
-import qualified Data.Semigroup as Sem
-import Prelude
 
 -- Describes differences from the standard repository format.
 --
@@ -85,7 +82,7 @@ appendDifferences a@(Differences {}) b@(Differences {}) = a
        }
 appendDifferences _ _ = UnknownDifferences
 
-instance Sem.Semigroup Differences where
+instance Semigroup Differences where
        (<>) = appendDifferences
 
 instance Monoid Differences where
index 7616efc9e78f891a93d595280bb7af0c6abb7b69..053187c66e625b0b8ce12e174751704a29dcedc0 100644 (file)
@@ -14,9 +14,6 @@ import Key
 import Data.Time.Clock
 import Git.Config (isTrueFalse, boolConfig)
 
-import Control.Applicative
-import Prelude
-
 type GitAnnexVersion = String
 
 data GitAnnexDistribution = GitAnnexDistribution
index 07b4135b8208e296b21d28f788dde41fbb41dc27..5d2443acd7901af059883fe49619f19608ccc921 100644 (file)
@@ -14,7 +14,6 @@ module Types.GitRemoteAnnex
 
 import Types.Key
 
-import qualified Data.Semigroup as Sem
 import qualified Data.Set as S
 
 -- The manifest contains an ordered list of git bundle keys.
@@ -39,7 +38,7 @@ mkManifest inks outks = Manifest inks (S.filter (`notElem` inks) outks)
 instance Monoid Manifest where
        mempty = Manifest mempty mempty
 
-instance Sem.Semigroup Manifest where
+instance Semigroup Manifest where
        a <> b = mkManifest
                (inManifest a <> inManifest b)
                (S.union (outManifest a) (outManifest b))
index 69f1c4fe1e85e80c4d4fd71f2c4ff002ac0a7153..35b42ee159259f1fe05984cddb78c42eb631eb29 100644 (file)
@@ -42,11 +42,9 @@ import Data.List
 import Data.Char
 import System.Posix.Types
 import Foreign.C.Types
-import Data.Monoid
 import Control.Applicative
 import GHC.Generics
 import Control.DeepSeq
-import Prelude
 
 {- A Key has a unique name, which is derived from a particular backend,
  - and may contain other optional metadata. -}
index 853237e254d066fcb31f532346671d36d4f52d4c..97d6131b41b1ce77e5e544042bb1fd8d135b905f 100644 (file)
@@ -23,8 +23,6 @@ import Utility.OsPath
 
 import Data.Time.Clock.POSIX
 import Control.Concurrent
-import Control.Applicative
-import Prelude
 
 {- Enough information to uniquely identify a transfer. -}
 data Transfer = Transfer
index 63eef53a43b84ddcdcfe1166c8732c35e275962b..609ad43c08f99c781b103992d0ee69a144563ca2 100644 (file)
@@ -20,7 +20,6 @@ import Data.Maybe
 import Data.String
 import Data.ByteString.Builder
 import Control.DeepSeq
-import qualified Data.Semigroup as Sem
 
 import Common
 import Git.Types (ConfigValue(..))
@@ -115,7 +114,7 @@ isUUID = isJust . U.fromString
 
 -- A description of a UUID.
 newtype UUIDDesc = UUIDDesc B.ByteString
-       deriving (Eq, Sem.Semigroup, Monoid, IsString)
+       deriving (Eq, Semigroup, Monoid, IsString)
 
 fromUUIDDesc :: UUIDDesc -> String
 fromUUIDDesc (UUIDDesc d) = decodeBS d
index 91ffe2ca66bab16624ed5bfc9aa41f278701e4b6..a8df449e92e779ea273d8447d5fd45fb78658fba 100644 (file)
@@ -8,8 +8,6 @@
 module Types.VectorClock where
 
 import Data.Time.Clock.POSIX
-import Control.Applicative
-import Prelude
 
 import Utility.QuickCheck
 
index 5de512d31438c6c4f7a98e68921ba243d0702d5b..1424938d0e6a7c62dca1bc780584a19a738d2768 100644 (file)
@@ -30,7 +30,6 @@ import qualified Data.ByteString as S
 import qualified Data.Set
 import qualified Data.Map
 import qualified Data.Vector
-import Prelude
 
 import Utility.FileSystemEncoding
 #ifdef WITH_OSPATH
index 6e6e701162773cd5c194b3d1936fe0640fae1457..e327041423e631683ab0097b36bc4bf4a5ef1737 100644 (file)
@@ -23,8 +23,6 @@ import Data.IORef
 import Data.String
 import Data.Time
 import System.IO.Unsafe (unsafePerformIO)
-import qualified Data.Semigroup as Sem
-import Prelude
 
 import Utility.FileSystemEncoding
 
@@ -41,7 +39,7 @@ data DebugSelector
        = DebugSelector (DebugSource -> Bool)
        | NoDebugSelector
 
-instance Sem.Semigroup DebugSelector where
+instance Semigroup DebugSelector where
        DebugSelector a <> DebugSelector b = DebugSelector (\v -> a v || b v)
        NoDebugSelector <> NoDebugSelector = NoDebugSelector
        NoDebugSelector <> b = b
index 0051dd75fc7304c2bdddcf51fbe52702c1dbd39c..1181eaf7f551885215d9a746e57ac6ad2532256a 100644 (file)
@@ -19,10 +19,7 @@ import Utility.SystemDirectory
 #endif
 import Control.Monad
 import System.PosixCompat.Files (isDirectory, isSymbolicLink)
-import Control.Applicative
 import System.IO.Unsafe (unsafeInterleaveIO)
-import Data.Maybe
-import Prelude
 
 import Utility.OsPath
 import Utility.Exception
index 5aad1fb63acd530ef14e5b258e73c3d6b88bb335..179e0da8cd0ccd998dbb40d1a302218970df853b 100644 (file)
@@ -15,12 +15,9 @@ module Utility.Directory.Create (
 ) where
 
 import Control.Monad
-import Control.Applicative
 import Control.Monad.IO.Class
 import Control.Monad.IfElse
 import System.IO.Error
-import Data.Maybe
-import Prelude
 
 import Utility.SystemDirectory
 import Utility.Path.AbsRel
index 8ae6b32e4062995ef18e75f6d2ea0078c85d58fc..4b4c9b125e6613a8f398286cf733b87ff1e7bbb1 100644 (file)
@@ -21,7 +21,6 @@ module Utility.Directory.Stream (
 import Control.Monad
 import Control.Concurrent
 import Data.Maybe
-import Prelude
 
 #ifdef mingw32_HOST_OS
 import qualified System.Win32 as Win32
index 9847326940dc310fedb74ce11f861eb96e73ef50..651234c0bbf5b02f04dbf52787d2a4fc6e652535 100644 (file)
@@ -21,7 +21,6 @@ module Utility.Env (
 import Utility.Exception
 import Control.Applicative
 import Data.Maybe
-import Prelude
 import qualified System.Environment as E
 #else
 import qualified System.Posix.Env as PE
index db738270f70e142c048d5bc137670fc31cd5ade7..77eb5604ce157bf11bd8abdc90b3853bf3676fdc 100644 (file)
@@ -13,9 +13,7 @@ module Utility.Env.Basic (
 ) where
 
 import Utility.Exception
-import Control.Applicative
 import Data.Maybe
-import Prelude
 import qualified System.Environment as E
 
 getEnv :: String -> IO (Maybe String)
index 5178531cf8ce2be0ab6541a4ba2a4b48398829a9..1c057610f20eb4e5d57c2247b2707ac37a252a3f 100644 (file)
@@ -23,8 +23,6 @@ import qualified Data.Map as M
 import Data.Time.Clock
 import Data.Time.Clock.POSIX (POSIXTime)
 import Data.Char
-import Control.Applicative
-import Prelude
 
 newtype Duration = Duration { durationSeconds :: Integer }
        deriving (Eq, Ord, Read, Show)
index 66e00a47befb2a3b659da14de48db063a0aed0eb..e19cecac1d5af56a7382408d9d9d10723aca447d 100644 (file)
@@ -23,9 +23,7 @@ import Network.Socket
 import Data.Word
 import Data.Memory.Endian
 import Data.List
-import Control.Applicative
 import Text.Printf
-import Prelude
 
 extractIPAddress :: SockAddr -> Maybe String
 extractIPAddress (SockAddrInet _ ipv4) =
index cce5ca99bf68206d1e2dc828fe38dae06ac9cfe7..3d3ddfdc96560458d6f772d9d96e9533393cb57e 100644 (file)
@@ -33,8 +33,6 @@ import Data.Maybe
 import System.Posix.Files (isSymbolicLink)
 import Data.Char
 import Control.Monad.IfElse
-import Control.Applicative
-import Prelude
 
 {- Installs a library. If the library is a symlink to another file,
  - install the file it links to, and update the symlink to be relative. -}
index 6cd556b34c756502dd35a37e91e760eaf54fbe0e..6c1309503c94de464d13714a29f9e02db28d32d0 100644 (file)
@@ -55,8 +55,6 @@ import Control.Monad.IO.Class (liftIO, MonadIO)
 import Data.Maybe
 import Data.List
 import Network.BSD
-import Control.Applicative
-import Prelude
 
 type PidLockFile = OsPath
 
index 6b3a2ef93d5e239782c5f8008332a68567e0d9aa..de0878cb4ff2c7982e57a58d0ea328e23a84320e 100644 (file)
@@ -25,7 +25,6 @@ import Utility.DebugLocks
 import Control.Concurrent.STM
 import Control.Monad.Catch
 import Control.Monad.IO.Class (liftIO, MonadIO)
-import Prelude
 
 data LockHandle = LockHandle P.LockHandle FileLockOps
 
index 87f1f1a21488d52d053d0a008f4c6623289c07af..631dad1bf448ee2e2bafe226a07a79f812d2c64d 100644 (file)
@@ -25,15 +25,12 @@ import Utility.LockPool.STM (LockFile, LockMode(..))
 import Utility.LockPool.LockHandle
 import Utility.ThreadScheduler
 
-import System.IO
 import System.Posix
 import Control.Concurrent.STM
 import Data.Maybe
 import Control.Monad
 import Control.Monad.Catch
 import Control.Monad.IO.Class
-import Control.Applicative
-import Prelude
 
 -- Does locking using a pid lock, blocking until the lock is available
 -- or the Seconds timeout if the pid lock is held by another process.
index 59aaa4e102cc4a633dbb50dbab31434400df0f9e..2e6633d1b7d69582f58681a95c62701f03fbe41b 100644 (file)
@@ -26,11 +26,7 @@ import Utility.LockPool.STM (LockFile, LockMode(..))
 import Utility.LockPool.LockHandle
 import Utility.FileMode
 
-import System.IO
 import System.Posix
-import Data.Maybe
-import Control.Applicative
-import Prelude
 
 -- Takes a shared lock, blocking until the lock is available.
 lockShared :: Maybe ModeSetter -> LockFile -> IO LockHandle
index 8aa950ef7d1bf0d713026565cd310139619e83a8..85f8151694309fe6dc37280e7039921e88f4f88a 100644 (file)
@@ -38,8 +38,6 @@ import Control.Concurrent
 import Control.Concurrent.Async
 import Data.Char
 import Data.List
-import Control.Applicative
-import Prelude
 
 -- | A Magic Wormhole code.
 newtype Code = Code String
index c81ca21f28823133ec31966880ef1f01d06bd4f7..4ed4782214b2c002174e5e5bb344c31717731c58 100644 (file)
@@ -34,12 +34,10 @@ import Foreign
 import Data.Char
 import Data.List
 import System.Exit
-import Control.Applicative
 import qualified Data.ByteString as S
 import qualified Data.ByteString.Char8 as S8
 import qualified Data.ByteString.Lazy as L
 import qualified Data.ByteString.Lazy.Char8 as L8
-import Prelude
 
 {- A version of hgetContents that is not lazy. Ensures file is 
  - all read before it gets closed. -}
index e327e0b4f176885be2408e748f11b8f764a101a7..a39e3bf0945d179e8dd4bfa6eb76d2c1c288b093 100644 (file)
@@ -15,7 +15,6 @@ module Utility.MoveFile (
 
 import Control.Monad
 import System.IO.Error
-import Prelude
 
 #ifndef mingw32_HOST_OS
 import System.PosixCompat.Files (isDirectory)
index 23487b1bcb9ac68676acc97e4544c7398ae8b86b..dcdf0dc1004e5e51e67c3fe1016825b07732ebad 100644 (file)
@@ -12,9 +12,6 @@ module Utility.Network (getHostname) where
 import Utility.Process
 import Utility.Exception
 
-import Control.Applicative
-import Prelude
-
 {- Haskell lacks uname(2) bindings, except in the
  - Bindings.Uname addon. Rather than depend on that,
  - use uname -n when available. -}
index c81517edfb1715aaf9d3970e88b13e32d99d0cf7..93336309b5d120698ff09b47df4fddd1863c46fc 100644 (file)
@@ -11,8 +11,6 @@ module Utility.OptParse (
 ) where
 
 import Options.Applicative
-import Data.Monoid
-import Prelude
 
 -- | A switch that can be enabled using --foo and disabled using --no-foo.
 --
index 18abcb250d29d3442e506d0be179f54ce5528ea8..a892fb110e43143578ac937d3cfeca4ef99163d5 100644 (file)
@@ -31,8 +31,6 @@ import qualified Data.ByteString as B
 import Data.List
 import Data.Maybe
 import Control.Monad
-import Control.Applicative
-import Prelude
 
 import Author
 import Utility.Monad
index f3458b361834ad7de20ef545911e48dddbdcc661..b0622e41747c0c0c317deaa5077cf62e5b7275ff 100644 (file)
@@ -18,8 +18,6 @@ module Utility.Path.AbsRel (
 ) where
 
 import qualified Data.ByteString as B
-import Control.Applicative
-import Prelude
 
 import Utility.Path
 import Utility.UserInfo
index 11c0ea2d75d6e800691c489b35592ce6ed0e14ed..253a84d91cde843c128088e1ade9cded3f302d42 100644 (file)
@@ -13,9 +13,6 @@ module Utility.Path.Max (fileNameLengthLimit) where
 #ifndef mingw32_HOST_OS
 import Utility.Exception
 import System.Posix.Files
-import Data.List
-import Control.Applicative
-import Prelude
 #endif
 
 {- Maximum size to use for a file in a specified directory.
index e7df275bd3dc8422ac7661085fdeade1a592a0ce..d3de144dd9123b9ba6e874f3cdd075457370e872 100644 (file)
@@ -17,11 +17,6 @@ module Utility.Path.Tests (
        prop_dirContains_regressionTest,
 ) where
 
-import Data.List
-import Data.Maybe
-import Control.Applicative
-import Prelude
-
 import Common
 import Utility.QuickCheck
 import qualified Utility.OsString as OS
index 0dd415337218d424e4cb60c5a897951c5e1069d2..f017348e40044445bb20af4d981f1376b1132170 100644 (file)
@@ -24,11 +24,8 @@ import Control.Monad
 import Control.Exception
 import qualified System.Posix.IO
 import GHC.IO.Encoding (getLocaleEncoding)
-#else
-import Control.Applicative
 #endif
 import Data.Maybe
-import Prelude
 
 -- | Runs a process and returns a transcript combining its stdout and
 -- stderr, and whether it succeeded or failed.
index a2ff2dd457dad54428be702dee3909589ebd1364..270341e9cbbe5849cc99cf70829bfdf09f731864 100644 (file)
@@ -24,7 +24,6 @@ import Data.Ratio
 import Data.Char
 import System.Posix.Types
 import Data.List.NonEmpty (NonEmpty(..))
-import Prelude
 
 {- A String, but Arbitrary is limited to ascii.
  -
index aa96bda0eafa2aab913b3e7a14c95eb9e590ed9b..627526fc22ff6e1ff7b93eaafe971c0887d8aa4d 100644 (file)
@@ -26,9 +26,6 @@ import Utility.Process
 import System.Exit
 import System.FilePath
 import Data.Char
-import Data.List
-import Control.Applicative
-import Prelude
 
 -- | Parameters that can be passed to a shell command.
 data CommandParam
index 7dacdc7ec6061deba7962dc3f7e176aad7605547..ba32b0d42db1ced98fe459074051dfdec0ec2da1 100644 (file)
@@ -40,8 +40,6 @@ import Data.Time.Calendar.WeekDate
 import Data.Time.Calendar.OrdinalDate
 import Data.Time.Format ()
 import Data.Char
-import Control.Applicative
-import Prelude
 
 {- Some sort of scheduled event. -}
 data Schedule = Schedule Recurrence ScheduledTime
index c8d4955af755cef666c4cff6c591134a0efcc0cf..62aa7b2e65fd3b87a209e4849839fbc547e96598 100644 (file)
@@ -12,9 +12,6 @@ module Utility.Scheduled.QuickCheck (prop_schedule_roundtrips) where
 import Utility.Scheduled
 import Utility.QuickCheck
 
-import Control.Applicative
-import Prelude
-
 instance Arbitrary Schedule where
        arbitrary = Schedule <$> arbitrary <*> arbitrary
 
index bd4a921e5af530987fb66dab9634a005fadf3a6a..d584985233b8d42e3438c0442c49c78daac17c89 100644 (file)
@@ -18,10 +18,9 @@ module Utility.ShellEscape (
 import Author
 import Utility.QuickCheck
 import Utility.Split
-import Data.Function
 
+import Data.Function
 import Data.List
-import Prelude
 
 copyright :: Copyright
 copyright = author JoeyHess (2000+30-20)
index 827229d22cf4bae7430701443921fb3f1fa39352..248607fb4b9ae76103d3d9eb57896500c50c97b2 100644 (file)
@@ -18,15 +18,12 @@ import Utility.Env.Basic
 import Utility.Exception
 #ifndef mingw32_HOST_OS
 import Utility.Data
-import Control.Applicative
 import System.Posix.User
 #if MIN_VERSION_unix(2,8,0)
 import System.Posix.User.ByteString (UserEntry)
 #endif
 #endif
 
-import Prelude
-
 {- Current user's home directory.
  -
  - getpwent will fail on LDAP or NIS, so use HOME if set. -}